home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 039a / watchdgs.zip / WATCHDGS.ASM
Assembly Source File  |  1991-06-19  |  3KB  |  132 lines

  1.         PAGE    60,132
  2.         TITLE   Watchdog - resets machine when carrier is lost
  3. ;
  4. ; WATCHDGS.COM  3/6/88  Original by James R. Reinders
  5. ;
  6. ;  Update/Modification History (reverse order):
  7. ;
  8. ;       8/15/84 - Original program.
  9. ;       3/06/88 - Doug Azzarito: WATCHDGS command specifically written for
  10. ;                 ALLOY PC-SLAVE systems and other non-standard MS-DOS
  11. ;                 computers.  Changed reboot command from direct jump
  12. ;                 (FFFF:0000) to an INT 19H.  Use this only if WATCHDOG.COM
  13. ;                 does not properly reboot your system.
  14. ;
  15. ;       The IBM Macro Assembler and Link will produce WATCHDGS.EXE
  16. ;       which must be converted to a .COM program by the DOS
  17. ;       EXE2BIN command:
  18. ;
  19. ;       C\> EXE2BIN WATCHDGS.EXE WATCHDGS.COM
  20. ;
  21. TRUE    EQU     1
  22. FALSE   EQU     0
  23.  
  24. CSEG    SEGMENT 'CODE'
  25.         ASSUME  CS:CSEG
  26.         ORG     100H            ; SET UP FOR .COM CONVERSION
  27.  
  28. INIT    PROC    FAR             ; WE'RE AN INTERRUPT ROUTINE
  29.         JMP     SHORT INITIAL   ; SO WE HAVE TO SET UP FIRST
  30.  
  31. START   PROC    FAR     ; Start of main routine - Timer (18.2 times per second)
  32.         ASSUME  CS:CSEG,DS:CSEG
  33.  
  34.         PUSH    AX
  35.         MOV     AL,CS:101H
  36.         OR      AL,AL
  37.         JZ      NOWAY
  38.         PUSH    DX
  39.  
  40.         MOV     DX,2FEH
  41.         IN      AL,DX
  42.         RCL     AL,1
  43.         JNC     LOSTCARR
  44.  
  45.         POP     DX
  46. NOWAY:  POP     AX
  47.  
  48.         DB      0EAH            ; JMP old timer routine
  49. WAS1Co  DW      0
  50. WAS1Cs  DW      0
  51.  
  52. LOSTCARR:
  53.         INT     19H
  54.  
  55. START   ENDP
  56.  
  57. BUFFER  DB      'Watchdog for PC-Slave v1.0  03/06/88 by James R. Reinders.'
  58.         DB      13,10
  59.         DB      'PC-Slave mods by Doug Azzarito'
  60.         DB      13,10,'$'
  61.  
  62. INITIAL:
  63.         MOV     AX,CS
  64.         MOV     DS,AX
  65.  
  66.         MOV     DX,OFFSET BUFFER
  67.         MOV     AH,9
  68.         INT     21H     ; PRINT GREETING
  69.  
  70.         MOV     AX,351CH
  71.         INT     21H
  72.  
  73. DOWHAT: XOR     AL,AL
  74.         MOV     SI,05DH
  75.         CMP     BYTE PTR [SI],'O'
  76.         JNZ     ONONON
  77.         CMP     BYTE PTR [SI+1],'F'
  78.         JNZ     ONONON
  79.         CMP     BYTE PTR [SI+2],'F'
  80.         JNZ     ONONON
  81.         CMP     BYTE PTR [SI+3],' '
  82.         JZ      OFFOFF
  83.  
  84. ONONON: INC     AL
  85.         CMP     WORD PTR ES:[BX],2E50H
  86.         JNZ     PUTIN
  87. OFFOFF: CMP     WORD PTR ES:[BX],2E50H
  88.         MOV     DX,OFFSET NODOG
  89.         JNZ     PBYE
  90.  
  91.         DEC     BX
  92.         MOV     ES:[BX],AL
  93.  
  94.         MOV     DX,OFFSET ACTIVE
  95.         OR      AL,AL
  96.         JNZ     PBYE
  97.         MOV     DX,OFFSET NACTIVE
  98.  
  99. PBYE:   MOV     AH,9
  100.         INT     21H
  101.         INT     20H
  102.  
  103. PUTIN:  MOV     AX,ES
  104.         MOV     WAS1Cs,AX
  105.         MOV     CS:WAS1Co,BX
  106.  
  107.         MOV     AX,CS
  108.         MOV     DS,AX
  109.  
  110.         MOV     DX,OFFSET START
  111.         MOV     AX,251CH  ; DOS ROUTINE TO RESET INT. VECTOR
  112.         INT     21H
  113.  
  114.         MOV     DX,OFFSET INSTAL
  115.         MOV     AH,9
  116.         INT     21H
  117. ;
  118.         MOV     DX,OFFSET BUFFER ; LAST ADDRESS HERE
  119.         INT     27H     ; TERMINATE BUT STAY RESIDENT
  120. INIT    ENDP
  121.  
  122.  
  123. INSTAL  DB      'Watchdog installed and activated.',13,10,'$'
  124. ACTIVE  DB      'Watchdog activated.',13,10,'$'
  125. NACTIVE DB      'Watchdog deactivated.',13,10,'$'
  126. NODOG   DB      'Watchdog not present OR'
  127.         DB      ' another time utility loaded since watchdog.'
  128.         DB      13,10,'$'
  129.  
  130. CSEG    ENDS
  131.         END     INIT
  132.